package com.dl.service;

import com.dl.pojo.Page;
import com.dl.pojo.Permission;
import com.dl.pojo.Role;
import com.dl.pojo.User;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author DL
 * @create 2021-03-16 14:34
 */
@Service
public interface UserService {

    //注册
    boolean register(User user);

    //修改密码
    HashMap<String, String> modify(String originalPsd, String newPsd, String confirmNewPsd);

    //查询总数
    int getTotal();

    //根据关键字查询总数
    int getTotalByKey(String keyWord);

    //增加
    boolean addUser(User user);

    //删除
    boolean deleteUser(int id);

    //更新
    boolean updateUser(User user);

    //更新用户信息
    boolean updateUserInfo(Map<String, String> map);

    //更新用户状态信息
    boolean updateStatusByID(int id, int status);

    //查询
    User queryUserById(int id);

    //根据用户名查询用户角色信息
    List<Role> findRolesByUsername(String username);

    //根据用户名查询用户权限集合
    List<Permission> findPermissionsByUsername(String username);

    //根据角色id查询用户权限集合
    List<Permission> findPermissionsByRolesID(String roleID);

    //登录
    User queryUserByName(String username);

    //查询全部
    List<User> queryAllUser();

    //分页查询
    Page<User> queryUserByLimit(int currentPage, int pageSize);

    //根据关键字模糊查询
    Page<User> queryUserByKey(String keyWord, int currentPage, int pageSize);

}
